// 封装请求
import axios from "axios";

//创建axios实例
const request = axios.create({
    baseURL: "http://127.0.0.1:8080/api",
    timeout: 15000, //设置请求超时事件,
    headers: {
        "Content-Type": "application/json"
    }
})

//添加请求拦截
request.interceptors.request.use(config => {
        //在发送请求前需要执行的操作
        const token = localStorage.getItem('token')
        //假设有token
        if (token) {
            config.headers['Authorization'] = `Beare${token}`
        }
        return config
    },
    error => {
        console.error("请求拦截错误!")
        //请求错误执行操作
        return Promise.reject(error)
    }
)

//响应拦截
request.interceptors.response.use(response => {
    const res = response.data
    if (res.code && res.code !== 200) {
        console.warn('业务错误', res.message)
        return Promise.reject(new Error(res.message))
    }
    return res
}, error => {
    //获取响应状态码
    const status = error.response?.status
    switch (status) {
        case 400:
            console.error("请求参数错误")
            break;
        case 401:
            console.error("请求参数错误")
            break;
        case 404:
            console.error("接口地址不存在")
            break;
        case 500:
            console.error("服务器内部错误")
            break;
    }
    return Promise.reject(error)
})
//导出
export default request
